using System;
using System.ComponentModel.DataAnnotations;
using WalkingTec.Mvvm.Core;
using HengTong.Model.Db.SupplyChain.Purchase;


namespace HengTong.ViewModel.SupplyChain.SysPurchaseRequirementPoolEntryVms
{
    public partial class SysPurchaseRequirementPoolEntrySearcher : BaseSearcher
    {
        [Display(Name = "需求池")]
        public Guid? PoolId { get; set; }
        [Display(Name = "采购申请单")]
        public Guid? RequestBillId { get; set; }
        
        [Display(Name = "物料")]
        public Guid? MaterialId { get; set; }
        public Guid? MaterialSkuId { get; set; }
        [Display(Name = "申请部门")]
        public Guid? GroupId { get; set; }
        [Display(Name = "申请人")]
        public String RequestBy { get; set; }
        [Display(Name = "采购类型")]
        public PurchaseType? PurchaseType { get; set; }
        [Display(Name = "物料类型")]
        public MaterialType? MaterialType { get; set; }
        [Display(Name = "要求到货日期")]
        public DateRange RequiredDeliveryDate { get; set; }
        [Display(Name = "入池日期")]
        public DateRange EntryDate { get; set; }
        [Display(Name = "采购状态")]
        public PurchaseState? PurchaseState { get; set; }
        [Display(Name = "采购策略")]
        public PurchaseStrategy? PurchaseStrategy { get; set; }
        
        /// <summary>
        /// 物料名称，用于显示或模糊查询
        /// </summary>
        [Display(Name = "物料名称")]
        public string MaterialName { get; set; }
        
        /// <summary>
        /// 物料编码或 SKU 编码，用于精确或模糊查询
        /// </summary>
        [Display(Name = "物料编码")]
        public string MaterialCode { get; set; }
        
        /// <summary>
        /// 物料 SKU 名称，用于显示或模糊查询
        /// </summary>
        [Display(Name = "物料 SKU 名称")]
        public string MaterialSkuName { get; set; }
        
        /// <summary>
        /// 物料 SKU 编码，用于精确或模糊查询
        /// </summary>
        [Display(Name = "物料 SKU 编码")]
        public string MaterialSkuCode { get; set; }
        
        /// <summary>
        /// ERP系统编码
        /// </summary>
        public string ErpId { get; set; }
        
        [Display(Name = "采购申请单编号")]
        public string RequestBillCode { get; set; }
        
        /// <summary>
        /// ERP系统名称
        /// </summary>
        [Display(Name = "ERP系统名称")]
        public string ErpName { get; set; }

        protected override void InitVM()
        {
        }

    }
}
